//
//package com.algorithm.kotlin.string
//class DecideStringKt{
//    companion object {
//
//        @Throws(ArrayIndexOutOfBoundsException::class)
//        fun anagram(first: String ,  second: String):Boolean{
//            if (first.isEmpty() || second.isEmpty())
//                return false
//
//            if (first.length != second.length)
//                return false
//
//            if (first == second)
//                return true
//
//            val minChar = ' '; val maxChar = '~';
//            val maxRange = maxChar - minChar
//            val numbers = IntArray(maxRange);
//            val fCharArray = first.toCharArray();
//            val sCharArray = second.toCharArray();
//
//
//            for (i in 0..(sCharArray.size - 1)){
//                var sAsciiIndex:Int = fCharArray[i] - minChar
//                if (!checkRange(sAsciiIndex, minChar.toInt(), maxChar.toInt())){
//                    throw ArrayIndexOutOfBoundsException("not support < ' ' and > '~' char")
//                }
//                numbers[sAsciiIndex]++
//
//                sAsciiIndex = sCharArray[i] - minChar
//                if (!checkRange(sAsciiIndex, minChar.toInt(), maxChar.toInt())){
//                    throw ArrayIndexOutOfBoundsException("not support < ' ' and > '~' char")
//                }
//                numbers[sAsciiIndex]--
//            }
//
//            for (j in 0..maxRange / 2){
//
//                if (numbers[j] != 0 || 0 !=  numbers[maxRange - 1 - j]){
//                    return false
//                }
//
//            }
//
//            return true
//        }
//
//        private fun checkRange(index: Int, start: Int, end: Int) = index in start..end
//    }
//
//
//}
